package com.qjs.course.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


public class MyJosnUtil {
	/**
	 * list集合转json字符串数组
	 */
	public String getJsonArrayToJavaArray(List list){
		JSONArray jsonArray = JSONArray.fromObject(list);
		return jsonArray.toString();
	}
	
	 /** 
     * 将java对象（包括bean,map）转换成json字符串 ，也可以转成json数组
     * @param javaObj 
     * @return 
     */  
    public static String getJsonString4JavaPOJO(Object javaObj) {         
        JSONObject json;  
        json = JSONObject.fromObject(javaObj);  
        return json.toString();  
          
    }  
	
	  /** 
     * 从json对象集合转java对象列表 
     * @param jsonString 
     * @param pojoClass 
     * @return 
     */  
    public static List getList4Json(String jsonString, Class pojoClass) {  
          
        JSONArray jsonArray = JSONArray.fromObject(jsonString);  
        JSONObject jsonObject;  
        Object pojoValue;  
          
        List list = new ArrayList();  
        for ( int i = 0 ; i<jsonArray.size(); i++) {  
              
            jsonObject = jsonArray.getJSONObject(i);  
            pojoValue = JSONObject.toBean(jsonObject,pojoClass);  
            list.add(pojoValue);  
              
        }  
        return list;   
    }  
	
	
	
	 /**
     * 从一个JSON字符串转java对象 
     * @param jsonString 
     * @param pojoCalss 
     * @return 
     */  
    public static Object getObject4JsonString(String jsonString,Class pojoCalss){  
        Object pojo;  
        JSONObject jsonObject = JSONObject.fromObject( jsonString );    
        pojo = JSONObject.toBean(jsonObject,pojoCalss);  
        return pojo;  
    }  
	
   
  
    
    /** 
     * 从json 字符串中获取一个map，改map支持嵌套功能 
     * @param jsonString 
     * @return 
     */  
    public static Map getMap4Json(String jsonString){  
        JSONObject jsonObject = JSONObject.fromObject( jsonString );    
        Iterator  keyIter = jsonObject.keys();  
        String key;  
        Object value;  
        Map valueMap = new HashMap();  
  
        while( keyIter.hasNext())  
         {  
            key = (String)keyIter.next();  
            value = jsonObject.get(key);  
            valueMap.put(key, value);  
        }  
          
        return valueMap;  
    }  
    
    
}
